#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
using namespace std;

//打印提示信息
void Usage(const char* str)
{
  cout << str << " -[a | b | c]" << endl;
}

int main(int argc, char* argv[], char* envp[])
{
  // cout << "现在传入的有效元素数为：" << argc << endl;
  // cout << "==========================" << endl;
  // cout << "通过元素表打元素信息" << endl;
  // int pos = 0;
  // while(pos < argc)
  // {
  //   cout << argv[pos] << endl;
  //   pos++;
  // }
  // cout << "==========================" << endl;
  // cout << "使用环境变量表获取前五个环境变量信息" << endl;
  // pos = 0;
  // while(pos < 5)
  // {
  //   cout << envp[pos] << endl;
  //   pos++;
  // }

  //首先进行身份检验
  if(strcmp(getenv("USER"), "Yohifo") != 0)
  {
    cout << "当前用户为：" << getenv("USER") << endl;
    cout << "非法使用他人程序，操作被拒绝！" << endl;
    return 0;
  }

  //确保选项只有一个
  if(argc != 2)
  {
    cout << "指令错误，尝试重新输入" << endl;
    Usage(argv[0]);
    return 0;
  }

  //验证成功后，进行选项分流
  if(strcmp(argv[1], "-a") == 0)
  {
    while(1)
    {
      cout << "执行 a 任务" << endl;
      cout << "PID:" << getpid() << endl;
      cout << "任务执行完成" << endl;
      sleep(1);
    } 
  }
  else if(strcmp(argv[1], "-b") == 0)
  {
    cout << "执行 b 任务" << endl;
    cout << "…………………………" << endl;
    cout << "任务执行完成" << endl; 
  }
  else if(strcmp(argv[1], "-c") == 0)
  {
    cout << "执行 c 任务" << endl;
    cout << "…………………………" << endl;
    cout << "任务执行完成" << endl;     
  }
  else
  {
    cout << "指令错误，尝试重新输入" << endl;
    Usage(argv[1]);
    return 0;
  }

  return 0;
}
